BecakFloatingPanelsLibrary "BecakFloatingPanels"
Library for creating floating indicator panels with MACD, RSI, and Stochastic indicators
calculateMacd(source, fastLength, slowLength, signalLength)
Calculate MACD components
Parameters:
source (float) : Price source for calculation
fastLength (simple int) : Fast EMA period
slowLength (simple int) : Slow EMA period
signalLength (simple int) : Signal line period
Returns: MacdData MACD calculation results
calculateRsi(source, length)
Calculate RSI
Parameters:
source (float) : Price source for calculation
length (simple int) : RSI period
Returns: float RSI value
calculateStochastic(source, high, low, kLength, kSmoothing, dSmoothing)
Calculate Stochastic components
Parameters:
source (float) : Price source for calculation
high (float) : High prices
low (float) : Low prices
kLength (int) : %K period
kSmoothing (int) : %K smoothing period
dSmoothing (int) : %D smoothing period
Returns: StochData Stochastic calculation results
calculateStochSignals(stochK, stochD, overboughtLevel, oversoldLevel)
Calculate Stochastic signals
Parameters:
stochK (float) : Stochastic %K series
stochD (float) : Stochastic %D series
overboughtLevel (float) : Overbought threshold
oversoldLevel (float) : Oversold threshold
Returns: StochSignals Signal flags
calculateChartMetrics(high, low, lookbackLength)
Calculate chart range and positioning metrics
Parameters:
high (float) : High prices
low (float) : Low prices
lookbackLength (int) : Lookback period
Returns: ChartMetrics Chart positioning data
calculateMacdRange(macdLine, signalLine, histogram, safeLookback)
Calculate MACD range for normalization
Parameters:
macdLine (float) : MACD line series
signalLine (float) : Signal line series
histogram (float) : Histogram series
safeLookback (int) : Lookback period
Returns: MacdRange MACD range metrics
initVisualArrays()
Initialize visual arrays
Returns: VisualArrays Container with initialized arrays
clearVisuals(visuals)
Clear all visual elements
Parameters:
visuals (VisualArrays) : VisualArrays container
Returns: void
calculatePanelPositions(chartMetrics, oscPlacement, panelHeight, panelSpacing, centerOffset)
Calculate panel positions based on placement option
Parameters:
chartMetrics (ChartMetrics) : Chart metrics object
oscPlacement (string) : Panel placement option
panelHeight (float) : Panel height percentage
panelSpacing (float) : Panel spacing percentage
centerOffset (float) : Center offset percentage
Returns: PanelPositions Panel boundary coordinates
createPanelBackgrounds(visuals, positions, panelLeft, panelRight, showBackground, transparency)
Create panel backgrounds
Parameters:
visuals (VisualArrays) : VisualArrays container
positions (PanelPositions) : PanelPositions object
panelLeft (int) : Left boundary
panelRight (int) : Right boundary
showBackground (bool) : Show background flag
transparency (int) : Background transparency
Returns: void
drawReferenceLines(visuals, positions, chartMetrics, macdRange, dataLeft, dataRight, panelHeight, rsiOverbought, rsiOversold, stochOverbought, stochOversold)
Draw reference lines for all panels
Parameters:
visuals (VisualArrays) : VisualArrays container
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
macdRange (MacdRange) : MacdRange object
dataLeft (int) : Left data boundary
dataRight (int) : Right data boundary
panelHeight (float) : Panel height percentage
rsiOverbought (int) : RSI overbought level
rsiOversold (int) : RSI oversold level
stochOverbought (int) : Stochastic overbought level
stochOversold (int) : Stochastic oversold level
Returns: void
drawMacdIndicator(visuals, macdLine, signalLine, histogram, macdRange, positions, chartMetrics, barIndex, nextBarIndex, barIndexOffset, panelHeight)
Draw MACD indicator
Parameters:
visuals (VisualArrays) : VisualArrays container
macdLine (float) : MACD line series
signalLine (float) : Signal line series
histogram (float) : Histogram series
macdRange (MacdRange) : MacdRange object
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
barIndex (int) : Current bar index
nextBarIndex (int) : Next bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
Returns: void
drawRsiIndicator(visuals, rsiValue, positions, chartMetrics, barIndex, nextBarIndex, barIndexOffset, panelHeight)
Draw RSI indicator
Parameters:
visuals (VisualArrays) : VisualArrays container
rsiValue (float) : RSI value
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
barIndex (int) : Current bar index
nextBarIndex (int) : Next bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
Returns: void
drawStochasticIndicator(visuals, stochK, stochD, positions, chartMetrics, barIndex, nextBarIndex, barIndexOffset, panelHeight, stochOverbought, stochOversold)
Draw Stochastic indicator
Parameters:
visuals (VisualArrays) : VisualArrays container
stochK (float) : Stochastic %K series
stochD (float) : Stochastic %D series
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
barIndex (int) : Current bar index
nextBarIndex (int) : Next bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
stochOverbought (int) : Overbought level
stochOversold (int) : Oversold level
Returns: void
addStochasticSignals(visuals, buySignal, sellSignal, positions, chartMetrics, currentBarIndex, barIndexOffset, panelHeight, signalIndex)
Add Stochastic buy/sell signals
Parameters:
visuals (VisualArrays) : VisualArrays container
buySignal (bool) : Buy signal series
sellSignal (bool) : Sell signal series
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
currentBarIndex (int) : Current bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
signalIndex (int) : Signal index for lookback
Returns: void
setPanelLabels(macdLabel, rsiLabel, stochLabel, positions, chartMetrics, labelOffset, panelHeight, barIndexOffset)
Set panel title labels
Parameters:
macdLabel (label) : MACD label reference
rsiLabel (label) : RSI label reference
stochLabel (label) : Stochastic label reference
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
labelOffset (int) : Label horizontal offset
panelHeight (float) : Panel height percentage
barIndexOffset (int) : Horizontal offset
Returns: void
showDebugInfo(chartMetrics, debugMode)
Display debug information
Parameters:
chartMetrics (ChartMetrics) : ChartMetrics object
debugMode (bool) : Debug mode flag
Returns: void
ChartMetrics
Chart metrics container
Fields:
visibleHigh (series float) : Highest visible price
visibleLow (series float) : Lowest visible price
chartRange (series float) : Price range of chart
chartCenter (series float) : Center point of chart
MacdData
MACD calculation results
Fields:
macdLine (series float) : Main MACD line
signalLine (series float) : Signal line
histogram (series float) : MACD histogram
MacdRange
MACD range metrics for normalization
Fields:
highest (series float) : Highest MACD value
lowest (series float) : Lowest MACD value
BRange (series float) : Total range
StochData
Stochastic calculation results
Fields:
k_smooth (series float) : Smoothed %K line
d (series float) : %D line
StochSignals
Stochastic signals
Fields:
buySignal (series bool) : Buy signal flag
sellSignal (series bool) : Sell signal flag
PanelPositions
Panel positioning data
Fields:
macdTop (series float) : MACD panel top
macdBottom (series float) : MACD panel bottom
rsiTop (series float) : RSI panel top
rsiBottom (series float) : RSI panel bottom
stochTop (series float) : Stochastic panel top
stochBottom (series float) : Stochastic panel bottom
VisualArrays
Visual elements arrays container
Fields:
macdLines (array) : Array of MACD lines
macdHist (array) : Array of MACD histogram boxes
rsiLines (array) : Array of RSI lines
stochLines (array) : Array of Stochastic lines
stochAreas (array) : Array of Stochastic areas
stochSignals (array) : Array of Stochastic signals
panelBackgrounds (array) : Array of panel backgrounds
Wyszukaj w skryptach "high low"
Multi-Band Trend LineThis Pine Script creates a versatile technical indicator called "Multi-Band Trend Line" that builds upon the concept of the popular "Follow Line Indicator" by Dreadblitz. While the original Follow Line Indicator uses simple trend detection to place a line at High or Low levels, this enhanced version combines multiple band-based trading strategies with dynamic trend line generation. The indicator supports five different band types and provides more sophisticated buy/sell signals based on price breakouts from various technical analysis bands.
Key Features
Multi-Band Support
The indicator supports five different band types:
- Bollinger Bands: Uses standard deviation to create bands around a moving average
- Keltner Channels: Uses ATR (Average True Range) to create bands around a moving average
- Donchian Channels: Uses the highest high and lowest low over a specified period
- Moving Average Envelopes: Creates bands as a percentage above and below a moving average
- ATR Bands: Uses ATR multiplier to create bands around a moving average
Dynamic Trend Line Generation (Enhanced Follow Line Concept)
- Similar to the Follow Line Indicator, the trend line is placed at High or Low levels based on trend direction
- Key Enhancement: Instead of simple trend detection, this version uses band breakouts to trigger trend changes
- When price breaks above the upper band (bullish signal), the trend line is set to the low (optionally adjusted with ATR) - similar to Follow Line's low placement
- When price breaks below the lower band (bearish signal), the trend line is set to the high (optionally adjusted with ATR) - similar to Follow Line's high placement
- The trend line acts as dynamic support/resistance, following the price action more precisely than the original Follow Line
ATR Filter (Follow Line Enhancement)
- Like the original Follow Line Indicator, an ATR filter can be selected to place the line at a more distance level than the normal mode settled at candles Highs/Lows
- When enabled, it adds/subtracts ATR value to provide more conservative trend line placement
- Helps reduce false signals in volatile markets
- This feature maintains the core philosophy of the Follow Line while adding more precision through band-based triggers
Signal Generation
- Buy Signal: Generated when trend changes from bearish to bullish (trend line starts rising)
- Sell Signal: Generated when trend changes from bullish to bearish (trend line starts falling)
- Signals are displayed as labels on the chart
Visual Elements
- Upper and lower bands are plotted in gray
- Trend line changes color based on direction (green for bullish, red for bearish)
- Background color changes based on trend direction
- Buy/sell signals are marked with labeled shapes
How It Works
Band Calculation: Based on the selected band type, upper and lower boundaries are calculated
Signal Detection: When price closes above the upper band or below the lower band, a breakout signal is generated
Trend Line Update: The trend line is updated based on the breakout direction and previous trend line value
Trend Direction: Determined by comparing current trend line with the previous value
Alert Generation: Buy/sell conditions trigger alerts and visual signals
Use Cases
Enhanced trend following strategies: More precise than basic Follow Line due to band-based triggers
Breakout trading: Multiple band types provide various breakout opportunities
Dynamic support/resistance identification: Combines Follow Line concept with band analysis
Multi-timeframe analysis with different band types: Choose the most suitable band for your timeframe
Reduced false signals: Band confirmation provides better entry/exit points compared to simple trend following
ORB & Sessions [Capitalize Labs]ORB & Sessions Indicator
The ORB & Sessions Indicator provides a structured way to analyze intraday price action by combining two well-established concepts: global trading sessions and Opening Range Breakouts (ORB). It is designed to help traders identify where liquidity forms, when volatility expands, and how price behaves around key session and range levels.
Market Sessions Framework
Displays New York, London, and Asian sessions directly on the chart.
Each session can be shown as a highlighted background zone, or with extended highs and lows for liquidity tracking.
Session highs and lows remain projected forward after the session ends, allowing traders to monitor sweeps, retests, and reactions throughout the day.
Session times are fully customizable and can be aligned with the trader’s own timezone or broker feed.
This structure helps traders place price action into context, whether during quiet Asian trading, London-driven volatility, or New York reversals.
Opening Range Breakouts (ORB)
Supports three independent ORBs, each with configurable session times.
During the defined ORB window, the indicator captures the high and low of the range and plots a live updating box.
Once the ORB closes, the range locks and projects breakout targets (T1 and T2) based on user-defined risk-to-reward multiples.
Alerts are included for breakouts of highs, lows, or target levels.
Traders can use a single ORB or multiple—for example, tracking an Asian ORB into London, or London into New York.
Visualization and Clarity
Color-coded boxes and levels for sessions and ORBs.
Labels such as “Range High” and “Range Low” ensure clarity without clutter.
Flexible display settings allow highlighting full zones, just lines, or minimal markers depending on preference.
Practical Applications
This indicator is useful for:
Liquidity and volatility analysis: Observe where session highs and lows form and how they influence later trading.
Breakout and reversal strategies: Use ORB ranges to define risk and plan target projections.
Time-based research: Explore how different session overlaps or ORBs affect markets like indices, FX, and commodities.
Risk planning: Built-in R-multiple targets provide a consistent framework for evaluating setups.
Why It’s Different
Instead of showing sessions and ORBs separately, this indicator integrates them into one framework. Traders can:
See when and where sessions open and establish range levels.
Define precise ORBs with customizable timing.
Track breakout levels and targets in real time with alerts.
The result is a clear, time-structured view of the trading day, helping traders align setups with session dynamics and opening range behavior.
This indicator does not generate buy or sell signals. It is an analytical and visualization tool, providing structure for traders to better interpret intraday price action.
Trishul Tap Signals (v6) — Liquidity Sweep + Imbalanced RetestTrishul Tap Signals — Liquidity Sweep + Imbalanced Retest
Type: Signal-only indicator (non-repainting)
Style: Price-action + Liquidity + Trend-following
Best for: Intraday & Swing Trading — any liquid market (stocks, futures, crypto, FX)
Timeframes: Any (5m–1D recommended)
Concept
The Trishul Tap setup is a liquidity-driven retest play inspired by order-flow and Smart Money Concepts.
It identifies one-sided impulse candles that also sweep liquidity (grab stops above/below a recent swing), then waits for price to retest the origin of that candle to enter in the trend direction.
Think of it as the three points of a trident:
Trend filter — Only signals with the prevailing trend.
Liquidity sweep — Candle takes out a recent swing high/low (stop-hunt).
Imbalanced retest — Price taps the candle’s open/low (bull) or open/high (bear).
Bullish Setup
Trend Filter: Price above EMA(200).
Impulse Candle:
Green close.
Upper wick ≥ (wickRatio × lower wick).
Lower wick ≤ (oppWickMaxFrac × full range).
Liquidity Sweep: Candle’s high exceeds the highest high of the last sweepLookback bars (excluding current).
Tap Entry: Buy signal triggers when price later taps the candle’s low or open (user choice) within expireBars.
Bearish Setup
Trend Filter: Price below EMA(200).
Impulse Candle:
Red close.
Lower wick ≥ (wickRatio × upper wick).
Upper wick ≤ (oppWickMaxFrac × full range).
Liquidity Sweep: Candle’s low breaks the lowest low of the last sweepLookback bars (excluding current).
Tap Entry: Sell signal triggers when price later taps the candle’s high or open (user choice) within expireBars.
Inputs
Trend EMA Length: Default 200.
Sweep Lookback: Number of bars for liquidity sweep check (default 20).
Wick Ratio: Required size ratio of dominant wick to opposite wick (default 2.0).
Opposite Wick Max %: Opposite wick must be ≤ this fraction of the candle’s range (default 25%).
Tap Tolerance (ticks): How close price must come to the level to count as a tap.
Expire Bars: Max bars after setup to allow a valid tap.
One Signal per Level: If ON, a base is “consumed” after first signal.
Plot Tap Levels: Show horizontal lines for active bases.
Show Setup Labels: Mark the origin sweep candle.
Plots & Visuals
EMA Trend Line — trend filter reference.
Tap Levels —
Green = bullish base (origin candle’s low/open).
Red = bearish base (origin candle’s high/open).
Labels — Show where the setup candle formed.
Signals —
BUY: triangle-up below bar at bullish tap.
SELL: triangle-down above bar at bearish tap.
Alerts
Two built-in conditions:
BUY Signal (Trishul Tap) — triggers on bullish tap.
SELL Signal (Trishul Tap) — triggers on bearish tap.
Set via Alerts panel → Condition = this indicator → Choose signal type.
How to Trade It
Use in liquid markets with clean price structure.
Confirm with HTF structure, volume spikes, or other confluence if desired.
Place stop just beyond the tap level (or ATR-based).
Target 1–2R or trail behind structure.
Why It Works
Liquidity sweep traps traders entering late (breakout buyers or panic sellers) and forces them to exit in the opposite direction, fueling your entry.
Wick imbalance confirms directional aggression by one side.
Trend filter keeps you aligned with the market’s dominant flow.
Retest entry lets you enter at a better price with reduced risk.
Non-Repainting
Setups form only on confirmed bar closes.
Signals trigger only on later bars that tap the stored level.
No lookahead functions are used.
Disclaimer
This script is for educational purposes only and does not constitute financial advice. Test thoroughly in a simulator or demo before using in live markets. Trading involves risk.
Engulfing Pattern[SpeculationLab]Overview
This script detects two types of engulfing / outer bar patterns and marks them directly on the chart:
Body Engulfing – The current candle’s body range (open–close) completely covers the entire range (high–low) of the previous candle.
Range Engulfing – The current candle’s full range (high–low, including wicks) completely covers the entire range (high–low) of the previous candle.
Direction logic:
Bull – The previous candle is bearish and the selected engulfing rule is met.
Bear – The previous candle is bullish and the selected engulfing rule is met.
Optional: Require the current candle to have the opposite color of the previous one.
This is an open-source pattern recognition tool for learning, backtesting, and chart review. It is not financial advice.
Key Features
Two detection modes:
body – Body engulfs previous entire range
range – Wicks engulf previous entire range
Direction detection based on the previous candle’s color, with optional opposite-color confirmation
Chart markers: “BULL” /“BEAR” above bars
Alert-ready: built-in conditions for bullish and bearish engulfing patterns
Parameters
Engulfing Type: body / range
body: Current body must fully cover the previous candle’s high–low range
range: Current full range (high–low) must fully cover the previous candle’s high–low range
Require Opposite Previous Candle (default: off):
When enabled, the engulfing pattern must also have the opposite color from the previous candle to trigger
Usage Tips
Engulfing patterns are price action structures; combine with trend, key levels, and volume for context
Signals confirm on bar close (barstate.isconfirmed) to reduce repainting
Can be used with personal risk management rules (stop-loss, take-profit, filters)
Disclaimer
For educational and research purposes only – not financial advice
Past performance of patterns does not guarantee future results
Trading involves risk; always manage it responsibly
This script is open-source – feel free to learn from or modify it, but credit the original source and author (SpeculationLab)
脚本简介
本脚本用于识别两类包裹/外包形态,并在图表上以标记提示:
Body(实体包裹):当前K线的实体区间(开—收)完全覆盖上一根K线的整个区间(上一根的高—低)。
Range(影线外包):当前K线的影线区间(高—低)完全覆盖上一根K线的整个区间(上一根的高—低)。
方向判定:
Bull(多):上一根为阴线且满足所选包裹规则;
Bear(空):上一根为阳线且满足所选包裹规则;
可选项:要求“当前K线颜色与上一根相反”后再确认(见参数)。
本脚本为开源形态识别工具,适合技术分析学习、回测与复盘,不构成任何投资建议。
主要功能
两种识别模式:body(实体包裹上一根整段) / range(影线包裹上一根整段)。
方向识别:按上一根K线颜色判断多空;可选“当前颜色与上一根相反”的二次确认。
图表提示:plotshape 在K线上方标注 “BULL / BEAR”。
提醒支持:内置 Bullish Engulf / Bearish Engulf 提醒条件。
参数说明
Engulfing Type:body / range
body:当前实体须完全覆盖上一根的高—低整段;
range:当前高—低须完全覆盖上一根的高—低整段。
Require Opposite Previous Candle(默认关闭):
开启后,除满足包裹规则外,还需当前K线颜色与上一根相反才触发标记。
使用建议
包裹/外包是价格行为结构,建议结合趋势、关键价位、成交量等因素综合判断。
信号在收盘时确认(barstate.isconfirmed),以减少重绘干扰。
可与个人风格的风险控制规则(止损、止盈、过滤条件)配合使用。
合规与免责声明
本脚本仅用于技术研究与学习,不构成任何形式的投资建议或收益承诺。
历史形态并不代表未来结果,交易有风险,请自行评估并承担责任。
本脚本开源,欢迎学习与二次开发;转载或改用请注明来源与作者(SpeculationLab / 投机实验室)。
Awesome Indicator# Moving Average Ribbon with ADR% - Complete Trading Indicator
## Overview
The **Moving Average Ribbon with ADR%** is a comprehensive technical analysis indicator that combines multiple analytical tools to provide traders with a complete picture of price trends, volatility, relative performance, and position sizing guidance. This multi-faceted indicator is designed for both swing and positional traders looking for data-driven entry and exit signals.
## Key Components
### 1. Moving Average Ribbon System
- **4 Customizable Moving Averages** with default periods: 13, 21, 55, and 189
- **Multiple MA Types**: SMA, EMA, SMMA (RMA), WMA, VWMA
- **Color-coded visualization** for easy trend identification
- **Flexible configuration** allowing users to modify periods, types, and colors
### 2. Average Daily Range Percentage (ADR%)
- Calculates the average daily volatility as a percentage
- Uses a 20-period simple moving average of (High/Low - 1) * 100
- Helps traders understand the stock's typical daily movement range
- Essential for position sizing and stop-loss placement
### 3. Volume Analysis (Up/Down Ratio)
- Analyzes volume distribution over the last 55 periods
- Calculates the ratio of volume on up days vs down days
- Provides insight into buying vs selling pressure
- Values > 1 indicate more buying volume, < 1 indicate more selling volume
### 4. Absolute Relative Strength (ARS)
- **Dual timeframe analysis** with customizable reference points
- **High ARS**: Performance relative to benchmark from a high reference point (default: Sep 27, 2024)
- **Low ARS**: Performance relative to benchmark from a low reference point (default: Apr 7, 2025)
- Uses NSE:NIFTY as default comparison symbol
- Color-coded display: Green for outperformance, Red for underperformance
### 5. Relative Performance Table
- **5 timeframes**: 1 Week, 1 Month, 3 Months, 6 Months, 1 Year
- Shows stock performance **relative to benchmark index**
- Formula: (Stock Return - Index Return) for each period
- **Color coding**:
- Lime: >5% outperformance
- Yellow: -5% to +5% relative performance
- Red: <-5% underperformance
### 6. Dynamic Position Allocation System
- **6-factor scoring system** based on price vs EMAs (21, 55, 189)
- Evaluates:
- Price above/below each EMA
- EMA alignment (21>55, 55>189, 21>189)
- **Allocation recommendations**:
- 100% allocation: Score = 6 (all bullish signals)
- 75% allocation: Score = 4
- 50% allocation: Score = 2
- 25% allocation: Score = 0
- 0% allocation: Score = -2, -4, -6 (bearish signals)
## Display Tables
### Performance Table (Top Right)
Shows relative performance vs benchmark across multiple timeframes with intuitive color coding for quick assessment.
### Metrics Table (Bottom Right)
Displays key statistics:
- **ADR%**: Average Daily Range percentage
- **U/D**: Up/Down volume ratio
- **Allocation%**: Recommended position size
- **High ARS%**: Relative strength from high reference
- **Low ARS%**: Relative strength from low reference
## How to Use This Indicator
### For Trend Analysis
1. **Moving Average Ribbon**: Look for price above ascending MAs for bullish trends
2. **MA Alignment**: Bullish when shorter MAs are above longer MAs
3. **Color coordination**: Use consistent color scheme for quick visual analysis
### For Entry/Exit Timing
1. **Performance Table**: Enter when showing consistent outperformance across timeframes
2. **Volume Analysis**: Confirm entries with U/D ratio > 1.5 for strong buying
3. **ARS Values**: Look for positive ARS readings for relative strength confirmation
### For Position Sizing
1. **Allocation System**: Use the recommended allocation percentage
2. **ADR% Consideration**: Adjust position size based on volatility
3. **Risk Management**: Lower allocation in high ADR% stocks
### For Risk Management
1. **ADR% for Stop Loss**: Set stops at 1-2x ADR% below entry
2. **Relative Performance**: Reduce positions when consistently underperforming
3. **Volume Confirmation**: Be cautious when U/D ratio deteriorates
## Best Practices
### Timeframe Recommendations
- **Intraday**: Use lower MA periods (5, 13, 21, 55)
- **Swing Trading**: Default settings work well (13, 21, 55, 189)
- **Position Trading**: Consider higher periods (21, 50, 100, 200)
### Market Conditions
- **Trending Markets**: Focus on MA alignment and relative performance
- **Sideways Markets**: Rely more on ADR% for range trading
- **Volatile Markets**: Reduce allocation percentage regardless of signals
### Customization Tips
1. Adjust reference dates for ARS calculation based on significant market events
2. Change comparison symbol to sector-specific indices for better relative analysis
3. Modify MA periods based on your trading style and market characteristics
## Technical Specifications
- **Version**: Pine Script v6
- **Overlay**: Yes (plots on price chart)
- **Real-time Updates**: Yes
- **Data Requirements**: Minimum 252 bars for complete calculations
- **Compatible Timeframes**: All standard timeframes
## Limitations
- Performance calculations require sufficient historical data
- ARS calculations depend on selected reference dates
- Volume analysis may be less reliable in low-volume stocks
- Relative performance is only as good as the chosen benchmark
This indicator is designed to provide a comprehensive analysis framework rather than simple buy/sell signals. It's recommended to use this in conjunction with your overall trading strategy and risk management rules.
Prev D/W/M + Asia & London Levels [Oeditrades]Prev D/W/M + Asia & London Levels
Author: Oeditrades
Platform: Pine Script® v6
What it does
Plots only the most recent, fully completed:
Previous Day / Week / Month highs & lows
Asia and London session highs & lows
Levels are drawn as true horizontal lines from the period/session start and extended to the right for easy confluence reading. The script is non-repainting.
How it works
Prev Day/Week/Month: Uses completed HTF candles (high / low ) so values are fixed for the entire next period.
Sessions (NY time): Asia (default 20:00–03:00) and London (default 03:00–08:00) are tracked in America/New_York time. High/low are locked when the session ends, and the line is anchored at that session’s start.
Inputs & customization
Visibility: toggle Previous Day/Week/Month, Asia, London, and labels.
Colors: highs default red; lows default green (user-configurable). Session highs default pink, lows aqua (also editable).
Style: line style (solid/dotted/dashed) and width.
Sessions: editable time windows for Asia and London (still interpreted in New York time).
Disclaimer: optional on-chart disclaimer panel with editable text.
Notes
Works on any timeframe. For intraday charts, the HTF values remain constant until the next HTF bar completes.
If your market’s overnight hours differ, simply adjust the session windows in Inputs.
Lines intentionally show only the latest completed period/session to keep charts clean.
Use cases
Quick view of PDH/PDL, PWH/PWL, PMH/PML for bias and liquidity.
Intraday planning around Asia/London range breaks, retests, and overlaps with prior levels.
Disclaimer
This tool is for educational purposes only and is not financial advice. Markets involve risk; past performance does not guarantee future results.
Previous Levels by HAZEDPrevious Day/Week/Month High/Low Levels with 50% Equilibrium
🎯 Key Features:
- Previous Period Levels: Automatically plots previous Day, Week, and Month highs and lows
- 50% Equilibrium Zones: Shows the midpoint between each period's high and low
- Precise Line Placement: Lines start from the exact bar where the high/low occurred (not period beginning)
- Clean Visual Design: Solid lines for key levels, semi-transparent for equilibrium zones
- Customizable Display: Toggle each timeframe independently with custom colors and styles
📊 How It Works:
The indicator identifies the previous period's high and low points, then draws horizontal lines starting from the exact time those levels were created. The 50% equilibrium levels mark the midpoint between each period's range, providing additional support/resistance reference points.
⚙️ Settings:
- Timeframe Controls: Enable/disable Daily, Weekly, Monthly levels
- Line Styles: Choose between solid, dashed, or dotted lines
- Color Customization: Set individual colors for each timeframe
- Label Options: Show/hide price values, adjust label size
- 50% Levels: Toggle equilibrium zones with semi-transparent styling
💡 Trading Applications:
- Support & Resistance: Previous highs/lows act as key S/R levels
- Breakout Trading: Monitor price action around these critical levels
- Mean Reversion: 50% equilibrium zones often act as magnet levels
- Multi-Timeframe Analysis: See how different timeframe levels interact
🔧 Technical Notes:
- Lines extend to the right for future reference
- Only shows levels when chart timeframe is equal or lower than the level timeframe
- Uses precise historical data to ensure accurate line placement
- Optimized for performance with clean code structure
Perfect for swing traders, day traders, and anyone using support/resistance analysis!
Feel free to leave feedback and suggestions for future updates!
Pre-Market High and LowThis Pine Script indicator automatically plots the pre-market high and low price levels for each trading day, helping traders identify key support and resistance zones based on pre-market activity. Designed for stocks and other assets with pre-market sessions, it draws horizontal lines at the pre-market high and low prices at the regular market open (9:30 AM EST) and resets automatically at the start of each new trading day.
Features:
Automatic Daily Reset: Tracks pre-market highs and lows without requiring manual date changes.
Customizable Timeframe: Set your preferred pre-market session (default: 4:00 AM to 9:30 AM EST).
Flexible Styling: Choose line styles (Solid, Dashed, Dotted) and colors for high/low lines.
Adjustable Panel Size: Control how far the lines extend across the chart (default: 50 bars).
Optional Labels: Toggle labels to display "Pre-Market High" and "Pre-Market Low" at the market open.
Overlay Display: Lines and labels are plotted directly on the price chart for easy reference.
Essa's Sessions IndicatorOverview
This powerful tool is designed to visually map out the key trading sessions: Asia, London, and New York directly on your chart. By highlighting these periods and plotting their respective highs and lows, it helps you identify critical price levels, gauge market sentiment, and pinpoint potential breakout opportunities with ease.
What It Does
Visualizes Key Trading Sessions: Automatically draws colored backgrounds for the Asia, London, and New York sessions to show you exactly when the most important market activity is happening.
Plots Session Highs & Lows: Displays precise horizontal lines for the highest and lowest prices reached during each session, acting as key support and resistance levels.
Dual Timezone Mode: Easily switch between London (GMT/BST) and New York (EST/EDT) timezones with a single click. The indicator automatically adjusts all session times for you, ensuring accuracy no matter where you are.
Interactive & Informative Labels: Hover over any session high or low label to see a detailed tooltip containing:
The exact price level.
The session's price range (calculated in pips or points).
The total daily price range for broader context.
A simple volatility gauge (from "Low Vol 😴" to "High Vol 🔥").
Customizable Alerts: Enable breakout alerts to receive instant notifications the moment the price closes above a session high or below a session low.
Simple, powerful, and highly informative, this indicator is an essential tool for traders looking to build strategies around session-based price action.
HTF Candle Extremes Zigzag (Drawn on LTF)HTF Candle Extremes Zigzag (Drawn on LTF)
This indicator plots zigzag lines connecting the extremes (highs and lows) of Higher Timeframe (HTF) candles directly on your lower timeframe (LTF) chart. It visually highlights trend changes and HTF candle structure by drawing colored lines representing uptrends and downtrends based on HTF candle extremes.
"Key Features"
Higher Timeframe Tracking: Select any HTF to track candle extremes using the built-in security function.
Zigzag Lines: Connects HTF candle lows to highs in an intuitive zigzag pattern.
Trend Indication: Uptrend lines are green, downtrend lines are red (customizable colors).
Customizable Line Width: Adjust the thickness of the zigzag lines for better visibility.
Drawn on Lower Timeframe: All lines appear on your active lower timeframe chart, allowing easy visual correlation.
"How It Works"
The script fetches the open, high, low, close, and time data of the specified HTF candle. It detects new HTF bars and identifies trend direction changes by comparing the highs and lows of consecutive HTF candles.
- When an uptrend is detected, vertical lines are drawn from low to high of the HTF candle, connected to the previous extreme low.
- When a downtrend is detected, vertical lines are drawn from high to low, connected to the previous extreme high.
- Transitions between trends are highlighted by connecting the last extreme of the previous trend to the current extreme, creating a clean zigzag pattern.
Usage Notes:
Ideal for traders who want to visualize HTF market structure and trend changes while analyzing price action on lower timeframes.
---
© The_Forex_Steward
(mozilla.org)
Alpha - Combined BreakoutThis Pine Script indicator, "Alpha - Combined Breakout," is a combination between Smart Money Breakout Signals and UT Bot Alert, The UT Bot Alert indicator was initially developer by Yo_adriiiiaan
The idea of original code belongs HPotter.
This Indicator helps you identify potential trading opportunities by combining two distinct strategies: Smart Money Breakout and a modified UT Bot (likely a variation of the Ultimate Trend Bot). It provides visual signals, draws lines for potential take profit (TP) and stop loss (SL) levels, and includes a dashboard to track performance metrics.
Tutorial:
Understanding and Using the "Alpha - Combined Breakout" Indicator
This indicator is designed for traders looking for confirmation of market direction and potential entry/exit points by blending structural analysis with a trend-following oscillator.
How it Works (General Concept)
The indicator combines two main components:
Smart Money Breakout: This part identifies significant breaks in market structure, which "smart money" traders often use to gauge shifts in supply and demand. It looks for higher highs/lows or lower highs/lows and flags when these structural points are broken.
UT Bot: This is a trend-following component that generates buy and sell signals based on price action relative to an Average True Range (ATR) based trailing stop.
You can choose to use these signals independently or combined to generate trading alerts and visual cues on your chart. The dashboard provides a quick overview of how well the signals are performing based on your chosen settings and display mode.
Parameters and What They Do
Let's break down each input parameter:
1. Smart Money Inputs
These settings control how the indicator identifies market structure and breakouts.
swingSize (Market Structure Time-Horizon):
What it does: This integer value defines the number of candles used to identify significant "swing" (pivot) points—highs and lows.
Effect: A larger swingSize creates a smoother market structure, focusing on longer-term trends. This means signals might appear less frequently and with some delay but could be more reliable for higher timeframes or broader market movements. A smaller swingSize will pick up more minor market structure changes, leading to more frequent but potentially noisier signals, suitable for lower timeframes or scalping.
Analogy: Think of it like a zoom level on your market structure map. Higher values zoom out, showing only major mountain ranges. Lower values zoom in, showing every hill and bump.
bosConfType (BOS Confirmation Type):
What it does: This string input determines how a Break of Structure (BOS) is confirmed. You have two options:
'Candle Close': A breakout is confirmed only if a candle's closing price surpasses the previous swing high (for bullish) or swing low (for bearish).
'Wicks': A breakout is confirmed if any part of the candle (including its wick) surpasses the previous swing high or low.
Effect: 'Candle Close' provides stronger, more conservative confirmation, as it implies sustained price movement beyond the structure. 'Wicks' provides earlier, more aggressive signals, as it captures momentary breaches of the structure.
Analogy: Imagine a wall. 'Candle Close' means the whole person must get over the wall. 'Wicks' means even a finger touching over the top counts as a breach.
choch (Show CHoCH):
What it does: A boolean (true/false) input to enable or disable the display of "Change of Character" (CHoCH) labels. CHoCH indicates the first structural break against the current dominant trend.
Effect: When true, it helps identify early signs of a potential trend reversal, as it marks where the market's "character" (its tendency to make higher highs/lows or lower lows/highs) first changes.
BULL (Bullish Color) & BEAR (Bearish Color):
What they do: These color inputs allow you to customize the visual appearance of bullish and bearish signals and lines drawn by the Smart Money component.
Effect: Purely cosmetic, helps with visual identification on the chart.
sm_tp_sl_multiplier (SM TP/SL Multiplier (ATR)):
What it does: A float value that acts as a multiplier for the Average True Range (ATR) to calculate the Take Profit (TP) and Stop Loss (SL) levels specifically when you're in "Smart Money Only" mode. It uses the ATR calculated by the UT Bot's nLoss_ut as its base.
Effect: A higher multiplier creates wider TP/SL levels, potentially leading to fewer trades but larger wins/losses. A lower multiplier creates tighter TP/SL levels, potentially leading to more frequent but smaller wins/losses.
2. UT Bot Alerts Inputs
These parameters control the behavior and sensitivity of the UT Bot component.
a_ut (UT Key Value (Sensitivity)):
What it does: This integer value adjusts the sensitivity of the UT Bot.
Effect: A higher value makes the UT Bot less sensitive to price fluctuations, resulting in fewer and potentially more reliable signals. A lower value makes it more sensitive, generating more signals, which can include more false signals.
Analogy: Like a noise filter. Higher values filter out more noise, keeping only strong signals.
c_ut (UT ATR Period):
What it does: This integer sets the look-back period for the Average True Range (ATR) calculation used by the UT Bot. ATR measures market volatility.
Effect: This period directly influences the calculation of the nLoss_ut (which is a_ut * xATR_ut), thus defining the distance of the trailing stop loss and take profit levels. A longer period makes the ATR smoother and less reactive to sudden price spikes. A shorter period makes it more responsive.
h_ut (UT Signals from Heikin Ashi Candles):
What it does: A boolean (true/false) input to determine if the UT Bot calculations should use standard candlestick data or Heikin Ashi candlestick data.
Effect: Heikin Ashi candles smooth out price action, often making trends clearer and reducing noise. Using them for UT Bot signals can lead to smoother, potentially delayed signals that stay with a trend longer. Standard candles are more reactive to raw price changes.
3. Line Drawing Control Buttons
These crucial boolean inputs determine which type of signals will trigger the drawing of TP/SL/Entry lines and flags on your chart. They act as a priority system.
drawLinesUtOnly (Draw Lines: UT Only):
What it does: If checked (true), lines and flags will only be drawn when the UT Bot generates a buy/sell signal.
Effect: Isolates UT Bot signals for visual analysis.
drawLinesSmartMoneyOnly (Draw Lines: Smart Money Only):
What it does: If checked (true), lines and flags will only be drawn when the Smart Money Breakout logic generates a bullish/bearish breakout.
Effect: Overrides drawLinesUtOnly if both are checked. Isolates Smart Money signals.
drawLinesCombined (Draw Lines: UT & Smart Money (Combined)):
What it does: If checked (true), lines and flags will only be drawn when both a UT Bot signal AND a Smart Money Breakout signal occur on the same bar.
Effect: Overrides both drawLinesUtOnly and drawLinesSmartMoneyOnly if checked. Provides the strictest entry criteria for line drawing, looking for strong confluence.
Dashboard Metrics Explained
The dashboard provides performance statistics based on the lines drawing control button selected. For example, if "Draw Lines: UT Only" is active, the dashboard will show stats only for UT Bot signals.
Total Signals: The total number of buy or sell signals generated by the selected drawing mode.
TP1 Win Rate: The percentage of signals where the price reached Take Profit 1 (TP1) before hitting the Stop Loss.
TP2 Win Rate: The percentage of signals where the price reached Take Profit 2 (TP2) before hitting the Stop Loss.
TP3 Win Rate: The percentage of signals where the price reached Take Profit 3 (TP3) before hitting the Stop Loss. (Note: TP1, TP2, TP3 are in order of distance from entry, with TP3 being furthest.)
SL before any TP rate: This crucial metric shows the number of times the Stop Loss was hit / the percentage of total signals where the stop loss was triggered before any of the three Take Profit levels were reached. This gives you a clear picture of how often a trade resulted in a loss without ever moving into profit target territory.
Short Tutorial: How to Use the Indicator
Add to Chart: Open your TradingView chart, go to "Indicators," search for "Alpha - Combined Breakout," and add it to your chart.
Access Settings: Once added, click the gear icon next to the indicator name on your chart to open its settings.
Choose Your Signal Mode:
For UT Bot only: Uncheck "Draw Lines: Smart Money Only" and "Draw Lines: UT & Smart Money (Combined)". Ensure "Draw Lines: UT Only" is checked.
For Smart Money only: Uncheck "Draw Lines: UT Only" and "Draw Lines: UT & Smart Money (Combined)". Ensure "Draw Lines: Smart Money Only" is checked.
For Combined Signals: Check "Draw Lines: UT & Smart Money (Combined)". This will override the other two.
Adjust Parameters:
Start with default settings. Observe how the signals appear on your chosen asset and timeframe.
Refine Smart Money: If you see too many "noisy" market structure breaks, increase swingSize. If you want earlier breakouts, try "Wicks" for bosConfType.
Refine UT Bot: Adjust a_ut (Sensitivity) to get more or fewer UT Bot signals. Change c_ut (ATR Period) if you want larger or smaller TP/SL distances. Experiment with h_ut to see if Heikin Ashi smoothing suits your trading style.
Adjust TP/SL Multiplier: If using "Smart Money Only" mode, fine-tune sm_tp_sl_multiplier to set appropriate risk/reward levels.
Interpret Signals & Lines:
Buy/Sell Flags: These indicate the presence of a signal based on your selected drawing mode.
Entry Line (Blue Solid): This is where the signal was generated (usually the close price of the signal candle).
SL Line (Red/Green Solid): Your calculated stop loss level.
TP Lines (Dashed): Your three calculated take profit levels (TP1, TP2, TP3, where TP3 is the furthest target).
Smart Money Lines (BOS/CHoCH): These lines indicate horizontal levels where market structure breaks occurred. CHoCH labels might appear at the first structural break against the prior trend.
Monitor Dashboard: Pay attention to the dashboard in the top right corner. This dynamically updates to show the win rates for each TP and, crucially, the "SL before any TP rate." Use these statistics to evaluate the effectiveness of the indicator's signals under your current settings and chosen mode.
*
Set Alerts (Optional): You can set up alerts for any of the specific signals (UT Bot Long/Short, Smart Money Bullish/Bearish, or the "Line Draw" combined signals) to notify you when they occur, even if you're not actively watching the chart.
By following this tutorial, you'll be able to effectively use and customize the "Alpha - Combined Breakout" indicator to suit your trading strategy.
CVD Divergence & Volume ProfileThis Pine Script indicator, named "CVD Divergence & Volume Profile," is designed to identify potential trading opportunities by combining Cumulative Volume Delta (CVD) divergence with Volume Profile levels and an optional Simple Moving Average (SMA) trend filter. It plots signals directly on the price chart.
Here's a breakdown of what each component does and how to potentially trade with it:
1. Cumulative Volume Delta (CVD) Divergence
What it does: CVD measures the cumulative difference between buying and selling volume. A rising CVD indicates more buying pressure, while a falling CVD indicates more selling pressure. Divergence occurs when the price action contradicts the CVD's direction, suggesting a potential shift in momentum or trend reversal.
Bearish Divergence: The price makes a higher high, but the CVD makes a lower high (or fails to make a new high). This suggests that despite the price increasing, the underlying buying pressure is weakening.
Bullish Divergence: The price makes a lower low, but the CVD makes a higher low (or fails to make a new low). This suggests that despite the price decreasing, the underlying selling pressure is weakening.
Visualization:
Red triangle pointing down on the chart indicates a Bearish Divergence signal.
Green triangle pointing up on the chart indicates a Bullish Divergence signal.
2. Volume Profile Levels (VAH, VAL, POC)
What it does: The indicator calculates simplified Volume Profile levels over a user-defined vp_range (number of candles). These levels represent areas where significant trading activity has occurred:
VAH (Value Area High): The upper boundary of the "Value Area," where 70% of the volume traded.
VAL (Value Area Low): The lower boundary of the "Value Area," where 70% of the volume traded.
POC (Point of Control): The price level within the vp_range where the most volume was traded.
Significance: These levels often act as significant support and resistance zones.
Visualization:
Orange lines for VAH and VAL.
Yellow line for POC.
Zone Proximity (zone_thresh): The indicator only generates divergence signals if the current close price is within a specified percentage zone_thresh of either VAH, VAL, or POC. This filters signals to areas of high liquidity and potential turning points.
3. Trend Filter (SMA)
What it does: This is an optional filter (use_trend_filter) that uses a Simple Moving Average (sma_period, default 200).
Significance: It helps ensure that divergence signals are traded in alignment with the broader market trend, potentially increasing their reliability.
For long signals (bullish divergence), the price (close) must be above the SMA (indicating an uptrend).
For short signals (bearish divergence), the price (close) must be below the SMA (indicating a downtrend).
Visualization: A blue line on the chart representing the SMA.
How to Trade with It (Potential Strategies)
The indicator aims to provide high-probability entry points by combining multiple confirming factors. Here's how you might interpret and trade the signals:
Identify Divergence: Look for the triangle signals on your chart (red for bearish, green for bullish).
Confirm Proximity to Volume Profile Levels: The signal itself confirms that the price is near a significant Volume Profile level (VAH, VAL, or POC). These are areas where price often reacts.
Bullish Signal (Green Triangle): This suggests buying momentum is returning after a price decline, especially when the price is near VAL or POC, which might act as support.
Bearish Signal (Red Triangle): This suggests selling momentum is increasing after a price rally, especially when the price is near VAH or POC, which might act as resistance.
Check Trend Alignment (SMA Filter):
For a long trade: You would ideally want to see a green triangle (bullish divergence) while the price is above the blue SMA line. This indicates a bullish divergence confirming a potential bounce within an existing uptrend.
For a short trade: You would ideally want to see a red triangle (bearish divergence) while the price is below the blue SMA line. This indicates a bearish divergence confirming a potential rejection within an existing downtrend.
Entry and Exit Considerations:
Entry: Consider entering a trade on the candle where the signal appears, or on the subsequent candle for confirmation.
Stop Loss: For a long trade, a logical stop-loss could be placed below the lowest point of the divergence, or below the VAL/POC if the signal occurred near it. For a short trade, above the highest point of the divergence or VAH/POC.
Take Profit: Targets could be set at the opposite Volume Profile level, previous swing highs/lows, or using a fixed risk-reward ratio.
Example Trading Scenario:
Long Trade: You see a green triangle (bullish divergence) printed on the chart. You notice the price is currently at the VAL (orange line). You check the blue SMA line and confirm that the price is above it (uptrend). This confluence of factors (bullish divergence, support at VAL, and uptrend) provides a strong potential long entry signal. You might enter, place your stop loss just below VAL, and target VAH or the next resistance level.
Short Trade: You see a red triangle (bearish divergence). The price is at the VAH (orange line). The price is also below the blue SMA line (downtrend). This suggests a potential short entry. You might enter, place your stop loss just above VAH, and target VAL or the next support level.
FvgObject█ OVERVIEW
This library provides a suite of methods designed to manage the visual representation and lifecycle of Fair Value Gap (FVG) objects on a Pine Script™ chart. It extends the `fvgObject` User-Defined Type (UDT) by attaching object-oriented functionalities for drawing, updating, and deleting FVG-related graphical elements. The primary goal is to encapsulate complex drawing logic, making the main indicator script cleaner and more focused on FVG detection and state management.
█ CONCEPTS
This library is built around the idea of treating each Fair Value Gap as an "object" with its own visual lifecycle on the chart. This is achieved by defining methods that operate directly on instances of the `fvgObject` UDT.
Object-Oriented Approach for FVGs
Pine Script™ v6 introduced the ability to define methods for User-Defined Types (UDTs). This library leverages this feature by attaching specific drawing and state management functions (methods) directly to the `fvgObject` type. This means that instead of calling global functions with an FVG object as a parameter, you call methods *on* the FVG object itself (e.g., `myFvg.updateDrawings(...)`). This approach promotes better code organization and a more intuitive way to interact with FVG data.
FVG Visual Lifecycle Management
The core purpose of this library is to manage the complete visual journey of an FVG on the chart. This lifecycle includes:
Initial Drawing: Creating the first visual representation of a newly detected FVG, including its main box and optionally its midline and labels.
State Updates & Partial Fills: Modifying the FVG's appearance as it gets partially filled by price. This involves drawing a "mitigated" portion of the box and adjusting the `currentTop` or `currentBottom` of the remaining FVG.
Full Mitigation & Tested State: Handling how an FVG is displayed once fully mitigated. Depending on user settings, it might be hidden, or its box might change color/style to indicate it has been "tested." Mitigation lines can also be managed (kept or deleted).
Midline Interaction: Visually tracking if the price has touched the FVG's 50% equilibrium level (midline).
Visibility Control: Dynamically showing or hiding FVG drawings based on various criteria, such as user settings (e.g., hide mitigated FVGs, timeframe-specific visibility) or external filters (e.g., proximity to current price).
Deletion: Cleaning up all drawing objects associated with an FVG when it's no longer needed or when settings dictate its removal.
Centralized Drawing Logic
By encapsulating all drawing-related operations within the methods of this library, the main indicator script is significantly simplified. The main script can focus on detecting FVGs and managing their state (e.g., in arrays), while delegating the complex task of rendering and updating them on the chart to the methods herein.
Interaction with `fvgObject` and `drawSettings` UDTs
All methods within this library operate on an instance of the `fvgObject` UDT. This `fvgObject` holds not only the FVG's price/time data and state (like `isMitigated`, `currentTop`) but also the IDs of its associated drawing elements (e.g., `boxId`, `midLineId`).
The appearance of these drawings (colors, styles, visibility, etc.) is dictated by a `drawSettings` UDT instance, which is passed as a parameter to most drawing-related methods. This `drawSettings` object is typically populated from user inputs in the main script, allowing for extensive customization.
Stateful Drawing Object Management
The library's methods manage Pine Script™ drawing objects (boxes, lines, labels) by storing their IDs within the `fvgObject` itself (e.g., `fvgObject.boxId`, `fvgObject.mitigatedBoxId`, etc.). Methods like `draw()` create these objects and store their IDs, while methods like `updateDrawings()` modify them, and `deleteDrawings()` removes them using these stored IDs.
Drawing Optimization
The `updateDrawings()` method, which is the most comprehensive drawing management function, incorporates optimization logic. It uses `prev_*` fields within the `fvgObject` (e.g., `prevIsMitigated`, `prevCurrentTop`) to store the FVG's state from the previous bar. By comparing the current state with the previous state, and also considering changes in visibility or relevant drawing settings, it can avoid redundant and performance-intensive drawing operations if nothing visually significant has changed for that FVG.
█ METHOD USAGE AND WORKFLOW
The methods in this library are designed to be called in a logical sequence as an FVG progresses through its lifecycle. A crucial prerequisite for all visual methods in this library is a properly populated `drawSettings` UDT instance, which dictates every aspect of an FVG's appearance, from colors and styles to visibility and labels. This `settings` object must be carefully prepared in the main indicator script, typically based on user inputs, before being passed to these methods.
Here’s a typical workflow within a main indicator script:
1. FVG Instance Creation (External to this library)
An `fvgObject` instance is typically created by functions in another library (e.g., `FvgCalculations`) when a new FVG pattern is identified. This object will have its core properties (top, bottom, startTime, isBullish, tfType) initialized.
2. Initial Drawing (`draw` method)
Once a new `fvgObject` is created and its initial visibility is determined:
Call the `myFvg.draw(settings)` method on the new FVG object.
`settings` is an instance of the `drawSettings` UDT, containing all relevant visual configurations.
This method draws the primary FVG box, its midline (if enabled in `settings`), and any initial labels. It also initializes the `currentTop` and `currentBottom` fields of the `fvgObject` if they are `na`, and stores the IDs of the created drawing objects within the `fvgObject`.
3. Per-Bar State Updates & Interaction Checks
On each subsequent bar, for every active `fvgObject`:
Interaction Check (External Logic): It's common to first use logic (e.g., from `FvgCalculations`' `fvgInteractionCheck` function) to determine if the current bar's price interacts with the FVG.
State Field Updates (External Logic): Before calling the `FvgObjectLib` methods below, ensure that your `fvgObject`'s state fields (such as `isMitigated`, `currentTop`, `currentBottom`, `isMidlineTouched`) are updated using the current bar's price data and relevant functions from other libraries (e.g., `FvgCalculations`' `checkMitigation`, `checkPartialMitigation`, etc.). This library's methods render the FVG based on these pre-updated state fields.
If interaction occurs and the FVG is not yet fully mitigated:
Full Mitigation Update (`updateMitigation` method): Call `myFvg.updateMitigation(high, low)`. This method updates `myFvg.isMitigated` and `myFvg.mitigationTime` if full mitigation occurs, based on the interaction determined by external logic.
Partial Fill Update (`updatePartialFill` method): If not fully mitigated, call `myFvg.updatePartialFill(high, low, settings)`. This method updates `myFvg.currentTop` or `myFvg.currentBottom` and adjusts drawings to show the filled portion, again based on prior interaction checks and fill level calculations.
Midline Touch Check (`checkMidlineTouch` method): Call `myFvg.checkMidlineTouch(high, low)`. This method updates `myFvg.isMidlineTouched` if the price touches the FVG's 50% level.
4. Comprehensive Visual Update (`updateDrawings` method)
After the FVG's state fields have been potentially updated by external logic and the methods in step 3:
Call `myFvg.updateDrawings(isVisibleNow, settings)` on each FVG object.
`isVisibleNow` is a boolean indicating if the FVG should currently be visible.
`settings` is the `drawSettings` UDT instance.
This method synchronizes the FVG's visual appearance with its current state and settings, managing all drawing elements (boxes, lines, labels), their styles, and visibility. It efficiently skips redundant drawing operations if the FVG's state or visibility has not changed, thanks to its internal optimization using `prev_*` fields, which are also updated by this method.
5. Deleting Drawings (`deleteDrawings` method)
When an FVG object is no longer tracked:
Call `myFvg.deleteDrawings(deleteTestedToo)`.
This method removes all drawing objects associated with that `fvgObject`.
This workflow ensures that FVG visuals are accurately maintained throughout their existence on the chart.
█ NOTES
Dependencies: This library relies on `FvgTypes` for `fvgObject` and `drawSettings` definitions, and its methods (`updateMitigation`, `updatePartialFill`) internally call functions from `FvgCalculations`.
Drawing Object Management: Be mindful of TradingView's limits on drawing objects per script. The main script should manage the number of active FVG objects.
Performance and `updateDrawings()`: The `updateDrawings()` method is comprehensive. Its internal optimization (checking `hasStateChanged` based on `prev_*` fields) is crucial for performance. Call it judiciously.
Role of `settings.currentTime`: The `currentTime` field in `drawSettings` is key for positioning time-dependent elements like labels and the right edge of non-extended drawings.
Mutability of `fvgObject` Instances: Methods in this library directly modify the `fvgObject` instance they are called upon (e.g., its state fields and drawing IDs).
Drawing ID Checks: Methods generally check if drawing IDs are `na` before acting on them, preventing runtime errors.
█ EXPORTED FUNCTIONS
method draw(this, settings)
Draws the initial visual representation of the FVG object on the chart. This includes the main FVG box, its midline (if enabled), and a label
(if enabled for the specific timeframe). This method is typically invoked
immediately after an FVG is first detected and its initial properties are set. It uses drawing settings to customize the appearance based on the FVG's timeframe type.
Namespace types: types.fvgObject
Parameters:
this (fvgObject type from no1x/FvgTypes/1) : The FVG object instance to be drawn. Core properties (top, bottom,
startTime, isBullish, tfType) should be pre-initialized. This method will
initialize boxId, midLineId, boxLabelId (if applicable), and
currentTop/currentBottom (if currently na) on this object.
settings (drawSettings type from no1x/FvgTypes/1) : A drawSettings object providing all visual parameters. Reads display settings (colors, styles, visibility for boxes, midlines, labels,
box extension) relevant to this.tfType. settings.currentTime is used for
positioning labels and the right boundary of non-extended boxes.
method updateMitigation(this, highVal, lowVal)
Checks if the FVG has been fully mitigated by the current bar's price action.
Namespace types: types.fvgObject
Parameters:
this (fvgObject type from no1x/FvgTypes/1) : The FVG object instance. Reads this.isMitigated, this.isVisible,
this.isBullish, this.top, this.bottom. Updates this.isMitigated and
this.mitigationTime if full mitigation occurs.
highVal (float) : The high price of the current bar, used for mitigation check.
lowVal (float) : The low price of the current bar, used for mitigation check.
method updatePartialFill(this, highVal, lowVal, settings)
Checks for and processes partial fills of the FVG.
Namespace types: types.fvgObject
Parameters:
this (fvgObject type from no1x/FvgTypes/1) : The FVG object instance. Reads this.isMitigated, this.isVisible,
this.isBullish, this.currentTop, this.currentBottom, original this.top/this.bottom,
this.startTime, this.tfType, this.isLV. Updates this.currentTop or
this.currentBottom, creates/updates this.mitigatedBoxId, and may update this.boxId's
top/bottom to reflect the filled portion.
highVal (float) : The high price of the current bar, used for partial fill check.
lowVal (float) : The low price of the current bar, used for partial fill check.
settings (drawSettings type from no1x/FvgTypes/1) : The drawing settings. Reads timeframe-specific colors for mitigated
boxes (e.g., settings.mitigatedBullBoxColor, settings.mitigatedLvBullColor),
box extension settings (settings.shouldExtendBoxes, settings.shouldExtendMtfBoxes, etc.),
and settings.currentTime to style and position the mitigatedBoxId and potentially adjust the main boxId.
method checkMidlineTouch(this, highVal, lowVal)
Checks if the FVG's midline (50% level or Equilibrium) has been touched.
Namespace types: types.fvgObject
Parameters:
this (fvgObject type from no1x/FvgTypes/1) : The FVG object instance. Reads this.midLineId, this.isMidlineTouched,
this.top, this.bottom. Updates this.isMidlineTouched if a touch occurs.
highVal (float) : The high price of the current bar, used for midline touch check.
lowVal (float) : The low price of the current bar, used for midline touch check.
method deleteDrawings(this, deleteTestedToo)
Deletes all visual drawing objects associated with this FVG object.
Namespace types: types.fvgObject
Parameters:
this (fvgObject type from no1x/FvgTypes/1) : The FVG object instance. Deletes drawings referenced by boxId,
mitigatedBoxId, midLineId, mitLineId, boxLabelId, mitLineLabelId,
and potentially testedBoxId, keptMitLineId. Sets these ID fields to na.
deleteTestedToo (simple bool) : If true, also deletes drawings for "tested" FVGs
(i.e., testedBoxId and keptMitLineId).
method updateDrawings(this, isVisibleNow, settings)
Manages the comprehensive update of all visual elements of an FVG object
based on its current state (e.g., active, mitigated, partially filled) and visibility. It handles the drawing, updating, or deletion of FVG boxes (main and mitigated part),
midlines, mitigation lines, and their associated labels. Visibility is determined by the isVisibleNow parameter and relevant settings
(like settings.shouldHideMitigated or timeframe-specific show flags). This method is central to the FVG's visual lifecycle and includes optimization
to avoid redundant drawing operations if the FVG's relevant state or appearance
settings have not changed since the last bar. It also updates the FVG object's internal prev_* state fields for future optimization checks.
Namespace types: types.fvgObject
Parameters:
this (fvgObject type from no1x/FvgTypes/1) : The FVG object instance to update. Reads most state fields (e.g.,
isMitigated, currentTop, tfType, etc.) and updates all drawing ID fields
(boxId, midLineId, etc.), this.isVisible, and all this.prev_* state fields.
isVisibleNow (bool) : A flag indicating whether the FVG should be currently visible. Typically determined by external logic (e.g., visual range filter). Affects
whether active FVG drawings are created/updated or deleted by this method.
settings (drawSettings type from no1x/FvgTypes/1) : A fully populated drawSettings object. This method extensively
reads its fields (colors, styles, visibility toggles, timeframe strings, etc.)
to render FVG components according to this.tfType and current state. settings.currentTime is critical for positioning elements like labels and extending drawings.
Filt ADR🟠 Script Name: Filtered Average Daily Range (Filt ADR)
This script calculates a filtered version of the Average Daily Range (ADR) based on the last 14 daily candles. It's designed to reduce the influence of unusually high or low daily ranges (outliers) by applying a filter before calculating the average.
🔧 How It Works — Step by Step
1. Calculate Daily Ranges (High - Low)
It retrieves the daily price ranges (difference between daily high and low) for the last 14 days using request.security() with the "D" (daily) timeframe.
pinescript
Копировать
Редактировать
high - low // today's daily range
high - low // yesterday's daily range
...
These values are stored into individual variables dr0 to dr13.
2. Build an Array of Daily Ranges
An array named ranges is used to store the 14 daily ranges, but only if they are not na (missing data). This avoids errors during processing.
3. Calculate the Initial (Unfiltered) Average Range
The script sums all values in the ranges array and calculates their average:
pinescript
Копировать
Редактировать
avg_all = total sum of ranges / number of valid entries
4. Filter Out Outliers
Now it filters the values in ranges:
Only keeps the ranges that are between 0.5×avg_all and 2×avg_all.
This is to remove abnormally small or large daily ranges that could distort the average.
The filtered values are added to a second array called filtered.
5. Calculate the Filtered ADR
Finally, it calculates the average of the filtered daily ranges:
pinescript
Копировать
Редактировать
avg_filt = sum of filtered ranges / number of filtered values
This is the Filtered ADR.
6. Plot the Result
The result (avg_filt) is plotted as an orange line on the chart. It updates on each bar (depending on the current timeframe you're viewing) but the underlying data is based on the last 14 daily candles.
pinescript
Копировать
Редактировать
plot(avg_filt, title="Filtered ADR", color=color.orange, linewidth=2)
✅ Use Case
This script is useful for traders who use the Average Daily Range (ADR) to:
Estimate expected price movement during a day
Set volatility-based stop-loss or take-profit levels
Identify days with unusually high or low volatility
By filtering out extreme values, it provides a more stable and reliable estimate of daily volatility.
0830-0845 High/Low Marker (Accurate Start + History)This indicator marks the high and low of the 15-minute candle between 08:30 and 08:45 (local time) of the trading session. The high and low are tracked dynamically, with the lines drawn once the 08:45 candle closes.
Key Features:
Session-based Tracking: Automatically tracks and records the high and low of the 15-minute period starting at 08:30 and ending at 08:45.
Excludes 08:45 High : If a high is created exactly at 08:45, the indicator will ignore it and use the highest value before 08:45, ensuring it only references the price action during the specified window.
Line Extension : The high and low lines are drawn and extended to the right for a user-defined number of bars, making them visible beyond the session's close.
Customizable Parameters : Adjust the start and end times of the session, line colors, and line width to fit your preferences.
Use Case :
Ideal for traders who focus on the price action during the early part of the trading session (08:30 to 08:45) and want to track significant levels of support and resistance from that period.
The extended lines help identify potential price zones for the rest of the session or the trading day.
X OHLdesigned to plot significant levels—closed higher timeframe High, Low, Open, and an Equilibrium (EQ) level and current Open—on the current chart based on user-defined higher timeframes (HTFs). It helps traders visualize HTF price levels on lower timeframes for confluence, context, or decision-making.
Key Functional Components:
Configurable Inputs:
Four Timeframes: Customizable (default: 1H, 4H, D, W).
Visibility Toggles for:
Previous High (pHigh)
Previous Low (pLow)
EQ (midpoint between high and low)
Current Open
Previous Open
How It Works:
For each selected timeframe:
retrieves OHL Data
Previous high/low (high , low )
Current and previous open
EQ is calculated as midpoint: (high + low) / 2
Draws Horizontal Lines:
Lines are drawn from the candle where the HTF bar opens and extended until timeframe switch. Lines extends a few bars beyond current to assist in visualization
Labels:
On the most recent bar, each level is labeled with a description (pHigh 1H, EQ 6H, etc.).
Labels are customizable (size, color, background).
Anchoring:
Lines and labels are redrawn on the start of each new HTF bar to ensure accuracy and relevance.
PRO SMC Full Suite BY Mashrur“PRO SMC Full Suite BY Mashrur”
A Pine Script (v5) indicator for TradingView, focused on Smart Money Concepts (SMC). It overlays on price charts and provides visual tools for identifying key institutional trading behaviors.
🎯 Purpose
This script is designed to help traders analyze and trade using SMC principles by automatically detecting:
Order Blocks (OBs)
Fair Value Gaps (FVGs)
Breaks of Structure (BoS)
Liquidity Sweeps (Buy/Sell Side Liquidity Grabs)
Mitigation Entries
⚙️ Inputs / Settings
Show Fair Value Gaps: Toggle FVGs on/off
Higher Timeframe (HTF): Choose HTF for OB analysis
Use HTF OBs: Switch between current TF OBs and HTF OBs
Show Order Blocks: Toggle OBs on/off
Show OB Mitigation Entries: Toggle mitigation entry signals on/off
🧠 Core Logic Overview
🔹 1. Swing Points Detection
Identifies swing highs/lows using a 3-bar pattern (pivot-based structure).
🔹 2. Break of Structure (BoS)
A bullish BoS happens when price closes above the last swing high.
A bearish BoS occurs when price closes below the last swing low.
🔹 3. Order Block Detection
Upon BoS, the script marks the previous candle as the Order Block.
Uses either:
Current TF OBs (based on price action)
HTF OBs (based on candle body direction)
🔹 4. Mitigation Entry Logic
A mitigation occurs when price returns to the OB and reacts with confirmation:
Bullish: price dips into OB and closes above
Bearish: price wicks into OB and closes below
Plots entry markers for these mitigations.
🔹 5. Liquidity Sweeps
Detects equal highs/lows (liquidity zones)
Marks Buy SL when price dips below an equal low then closes above
Marks Sell SL when price breaks above an equal high then closes below
🔹 6. Fair Value Gaps (FVGs)
FVG Up: Gap between candle 3 and candle 1 (low > high )
FVG Down: Gap between candle 3 and candle 1 (high < low )
Plots highlighted boxes on these gaps
📊 Visual Elements
Boxes: For OB zones and FVGs
Shapes:
Labels: OB Buy/Sell entries
Triangles: Buy SL / Sell SL liquidity sweeps
Lines: Equal Highs and Lows
🔔 Alerts
Built-in alerts to notify when:
OB entries are confirmed
Liquidity sweeps happen
Helps in automation or active monitoring
✅ Ideal For
Traders using SMC, ICT concepts, Wyckoff, or institutional trading models
Anyone wanting to automate detection of structural elements on their chart
MÈGAS ALGO : ZIG-ZAG CYCLE INSIGTH [INDICATOR]Overview
The Zig-Zag Cycle Insigth is a revisited version of the classic Zig Zag indicator, designed to provide traders with a more comprehensive and actionable view of price movements.
This advanced tool not only highlights significant price swings but also incorporates additional features such as cycle analysis, real-time data tracking, and Fibonacci retracement levels. These enhancements make it an invaluable resource for identifying trends, potential reversal points, and market structure.
This indicator adheres to TradingView's guidelines and is optimized for both technical analysts and active traders who seek deeper insights into market dynamics.
Key Features:
1. Customizable Thresholds for Price Movements:
- Users can set personalized thresholds for price movement percentages and time periods.
This ensures that only significant price swings are plotted, reducing noise and increasing
clarity.
- Straight lines connect swing highs and lows, providing a cleaner visual representation of
the trend.
2. Cycle Analysis Table:
- A dynamic table is included to analyze price cycles based on three key factors:
- Price Change: Measures the magnitude of each swing (high-to-low or low-to-high).
- Time Duration (Bar Count): Tracks the number of bars elapsed between consecutive swings,
offering precise timing insights.
- Volume: Analyzes trading volume during each segment of the cycle.
- The indicator calculates the **maximum**, **minimum**, and **mean** values for each
parameter across all completed cycles, providing deeper statistical insights into market
behavior.
- This table updates in real-time, offering traders a quantitative understanding of how price
behaves over different cycles.
3. Real-Time Data Integration:
- The indicator displays live updates of current price action relative to the last identified
swing high/low. This includes:
- Current distance from the last pivot point.
- Percentage change since the last pivot.
- Volume traded since the last pivot.
4. Fibonacci Retracement Levels:
- Integrated Fibonacci retracement levels are dynamically calculated based on the most
recent significant swing high and low.
- Key retracement levels (23.6%, 38.2%, 50%, 61.8%, and 78.6%) are plotted alongside the Zig
Zag lines, helping traders identify potential support/resistance zones.
- Extension levels (100%, 161.8%, etc.) are also included to anticipate possible breakout
targets.
5. Customizable Alerts:
- Users can configure alerts for specific real-time conditions, such as:
- Price Change
- Duration
- Volume
- Fibonacci Retracement Levels
How It Works:
1. Zig Zag Identification:
- The indicator scans historical price data to identify significant turning points where the
price moves by at least the user-defined percentage threshold.
- These turning points are connected by straight lines to form the Zig Zag pattern.
2. Cycle Analysis:
For each completed cycle (from one swing high/low to the next), the indicator calculates:
- Price Change: Difference between the start and end prices of the cycle.
- Maximum Price Change: The largest price difference observed across all cycles.
- Minimum Price Change: The smallest price difference observed across all cycles.
- Mean Price Change: The average price difference across all cycles.
- Time Duration (Bar Count): Number of bars elapsed between consecutive swings.
- Maximum Duration: The longest cycle in terms of bar count.
- Minimum Duration: The shortest cycle in terms of bar count.
- Mean Duration: The average cycle length in terms of bar count.
- Volume: Total volume traded during the cycle.
- Maximum Volume: The highest volume traded during any single cycle.
- Minimum Volume: The lowest volume traded during any single cycle.
- Mean Volume: The average volume traded across all cycles.
- These calculations provide traders with a statistical overview of market behavior, enabling
them to identify patterns and anomalies in price, time, and volume.
3. Fibonacci Integration:
- Once a new swing high or low is identified, the indicator automatically calculates Fibonacci
retracement and extension levels.
- These levels serve as reference points for potential entry/exit opportunities.
4. Real-Time Updates:
- As the market evolves, the indicator continuously monitors the relationship between the
current price and the last identified swing point.
- Real-time metrics, such as percentage change and volume, are updated dynamically.
5. Alerts Based on Real-Time Parameters:
- The indicator allows users to set customizable alerts based on real-time conditions:
- Price Change Alert: Triggered when the real-time price change is less or greater than a
predefined percentage threshold (e.g., > or < fixed value).
- Duration Alert: Triggered when the cycle duration (in bars) is less or greater than a
predefined
bar count threshold (e.g., > or < fixed value).
- Volume Alert: Triggered when the trading volume during the current cycle is less or greater
than a predefined volume threshold (e.g., > or < fixed value).
Advantages of Zig-Zag Cycle Insigth
- Comprehensive Insights: Combining cycle analysis, Fibonacci retracements, and real-time data
provides a holistic view of market conditions.
- Statistical Analysis: The inclusion of maximum, minimum, and mean values for price change,
duration, and volume offers deeper insights into market behavior.
- Actionable Signals: Customizable alerts ensure traders never miss critical market events based
on real-time price, duration, and volume parameters.
- User-Friendly Design: Clear visuals and intuitive controls make it accessible for traders of all
skill levels.
Reference:
TradingView/ZigZag
TradingView/AutofibRetracement
Please Note:
This indicator is provided for informational and educational purposes only. It is not financial advice, and it should not be considered a recommendation to buy, sell, or trade any financial instrument. Trading involves significant risks, including the potential loss of your entire investment. Always conduct your own research and consult with a licensed financial advisor before making any trading decisions.
The results and images provided are based on algorithms and historical/paid real-time market data but do not guarantee future results or accuracy. Use this tool at your own risk, and understand that past performance is not indicative of future outcomes.
Support & Resistance + EMA + Swing SL (3 Min)### **📌 Brief Description of the Script**
This **Pine Script indicator** for TradingView displays **Support & Resistance levels, EMAs (21 & 26), and Swing High/Low-based Stop-Loss (SL) points** on a **3-minute timeframe**.
---
### **🔹 Key Features & Functionality**
1️⃣ **🟥 Support & Resistance Calculation:**
- Finds the **highest & lowest price over the last 50 candles**
- Plots **Resistance (Red) & Support (Green) levels**
2️⃣ **📈 EMA (Exponential Moving Averages):**
- **21 EMA (Blue)** and **26 EMA (Orange)** for trend direction
- Helps in identifying bullish or bearish momentum
3️⃣ **📊 Swing High & Swing Low Detection:**
- Identifies **Swing Highs (Higher than last 5 candles) as SL for Short trades**
- Identifies **Swing Lows (Lower than last 5 candles) as SL for Long trades**
- Plots these levels as **Purple (Swing High SL) & Yellow (Swing Low SL) dotted lines**
4️⃣ **📌 Labels on Swing Points:**
- **"HH SL"** is placed on Swing Highs
- **"LL SL"** is placed on Swing Lows
5️⃣ **⚡ Breakout Detection:**
- Detects if **price crosses above Resistance** (Bullish Breakout)
- Detects if **price crosses below Support** (Bearish Breakout)
- Background color changes to **Green (Bullish)** or **Red (Bearish)**
6️⃣ **🚨 Alerts for Breakouts:**
- Sends alerts when **price breaks above Resistance or below Support**
---
### **🎯 How to Use This Indicator?**
- **Trade with Trend:** Follow **EMA crossovers** and Support/Resistance levels
- **Set Stop-Loss:** Use **Swing High as SL for Shorts** & **Swing Low as SL for Longs**
- **Look for Breakouts:** Enter trades when price **crosses Resistance or Support**
This script is **ideal for scalping & intraday trading** in a **3-minute timeframe** 🚀🔥
Let me know if you need **any modifications or improvements!** 📊💹
TJR SEEK AND DESTROYTJR SEEK AND DESTROY – Intraday ICT Trading Tool
Built for day traders, TJR SEEK AND DESTROY combines Smart Money concepts like order blocks, fair value gaps, and liquidity sweeps with structure breaks and daily bias to pinpoint high-probability trades during US market hours (9:30–16:00). Ideal for scalping or intraday strategies on stocks, futures, or forex.
What Makes It Unique?
Unlike standalone ICT indicators, this script integrates:
Order Blocks with volume and range filters for precise support/resistance zones.
Fair Value Gaps (FVG) to spot pre-market price imbalances.
Break of Structure (BOS) and Liquidity Sweeps for trend and reversal signals.
A 1H MA-based Bias to align trades with the day’s direction.
BUY/SELL Labels triggered only when bias, BOS, and sweeps align, reducing noise.
How Does It Work?
Order Blocks: Marks zones with high volume (>1.5x 20-period SMA) and low range (<0.5x ATR20) as teal boxes—potential reversal points.
Fair Value Gap: Compares the prior day’s close to the current open (pre- or post-9:30), shown as a purple line and label (e.g., "FVG: 0.005").
Pivot Point: Calculates (prevHigh + prevLow + prevClose) / 3 from the prior day, plotted as an orange line for equilibrium.
Break of Structure: Detects crossovers of 5-bar highs/lows (gray lines), marked with red triangles.
Liquidity Sweeps: Tracks breaches of the prior day’s high/low (yellow lines), marked with yellow triangles.
Daily Bias: Uses 1H close vs. 20-period MA (blue line) for bullish (green background), bearish (red), or neutral (gray) context.
Signals: BUY (green label) when bias is bullish, price breaks up, and sweeps the prior high; SELL (red label) when bias is bearish, price breaks down, and sweeps the prior low.
How to Use It
Setup: Apply to 1M–15M charts for US session trading (9:30–16:00 EST).
Trading:
Wait for a BUY label after a yellow sweep triangle above the prior day’s high in a green (bullish) background.
Wait for a SELL label after a yellow sweep triangle below the prior day’s low in a red (bearish) background.
Use order blocks (teal boxes) as support/resistance for stop-loss or take-profit.
Markets: Best for SPY, ES futures, or forex pairs with US session volatility.
Underlying Concepts
Order Blocks: High-volume, low-range bars suggest institutional activity.
FVG: Gaps between close and open indicate imbalance to be filled.
BOS & Sweeps: Price breaking key levels signals momentum or stop-hunting.
Bias: 1H MA filters trades by broader trend.
Chart Setup
Displays order blocks (teal boxes), pivot (orange), open (purple), bias (colored background), BOS/sweeps (triangles), and signals (labels). Keep other indicators off for clarity.
Casa_SessionsLibrary "Casa_Sessions"
Advanced trading session management library that enhances TradingView's default functionality:
Key Features:
- Accurate session detection for futures markets
- Custom session hour definitions
- Drop-in replacements for standard TradingView session functions
- Flexible session map customization
- Full control over trading windows and market hours
Perfect for traders who need precise session timing, especially when working
with futures markets or custom trading schedules.
SetSessionTimes(session_type_input, custom_session_times_input, syminfo_type, syminfo_root, syminfo_timezone)
Parameters:
session_type_input (simple string) : Input string for session selection:
- 'Custom': User-defined session times
- 'FX-Tokyo': Tokyo forex session
- 'FX-London': London forex session
- 'FX-New York': NY forex session
- 'Overnight Session (ON)': After-hours trading
- 'Day Session (RTH)': Regular trading hours
custom_session_times_input (simple string) : Session parameter for custom time windows
Only used when session_type_input is 'Custom'
syminfo_type (simple string)
syminfo_root (simple string)
syminfo_timezone (simple string)
Returns:
session_times: Trading hours for selected session
session_timezone: Market timezone (relevant for forex)
getSessionMap()
Get futures trading session hours map
Keys are formatted as 'symbol:session', examples:
- 'ES:market' - Regular trading hours (RTH)
- 'ES:overnight' - Extended trading hours (ETH)
- 'NQ:market' - NASDAQ futures RTH
- 'CL:overnight' - Crude Oil futures ETH
Returns: Map
Key: Symbol:session identifier
Value: Session hours in format "HH:MM-HH:MM"
getSessionString(session, symbol, sessionMap)
Returns a session string representing the session hours (and days) for the requested symbol (or the chart's symbol if the symbol value is not provided). If the session string is not found in the collection, it will return a blank string.
Parameters:
session (string) : A string representing the session hour being requested. One of: market (regular trading hours), overnight (extended/electronic trading hours), postmarket (after-hours), premarket
symbol (string) : The symbol to check. Optional. Defaults to chart symbol.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
inSession(session, sessionMap, barsBack)
Returns true if the current symbol is currently in the session parameters defined by sessionString.
Parameters:
session (string) : A string representing the session hour being requested. One of: market (regular trading hours), overnight (extended/electronic trading hours), postmarket (after-hours), premarket
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
barsBack (int) : Private. Only used by futures to check islastbar. Optional. The default is 0.
ismarket(sessionMap)
Returns true if the current bar is a part of the regular trading hours (i.e. market hours), false otherwise. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isfirstbar()
Returns true if the current bar is the first bar of the day's session, false otherwise. If extended session information is used, only returns true on the first bar of the pre-market bars. Works for futures (TradingView's methods do not).
Returns: bool
islastbar()
Returns true if the current bar is the last bar of the day's session, false otherwise. If extended session information is used, only returns true on the last bar of the post-market bars. Works for futures (TradingView's methods do not).
Returns: bool
ispremarket(sessionMap)
Returns true if the current bar is a part of the pre-market, false otherwise. On non-intraday charts always returns false. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
ispostmarket(sessionMap)
Returns true if the current bar is a part of the post-market, false otherwise. On non-intraday charts always returns false. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isfirstbar_regular(sessionMap)
Returns true on the first regular session bar of the day, false otherwise. The result is the same whether extended session information is used or not. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
islastbar_regular(sessionMap)
Returns true on the last regular session bar of the day, false otherwise. The result is the same whether extended session information is used or not. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isovernight(sessionMap)
Returns true if the current bar is a part of the pre-market or post-market, false otherwise. On non-intraday charts always returns false.
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
getSessionHighAndLow(session, sessionMap)
Returns a tuple containing the high and low print during the specified session.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: A tuple containing
getSessionHigh(session, sessionMap)
Convenience function to return the session high. Necessary if you want to call this function from within a request.security expression where you can't return a tuple.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: The high of the session
getSessionLow(session, sessionMap)
Convenience function to return the session low. Necessary if you want to call this function from within a request.security expression where you can't return a tuple.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: The low of the session
AMD Session Structure Levels# Market Structure & Manipulation Probability Indicator
## Overview
This advanced indicator is designed for traders who want a systematic approach to analyzing market structure, identifying manipulation, and assessing probability-based trade setups. It incorporates four core components:
### 1. Session Price Action Analysis
- Tracks **OHLC (Open, High, Low, Close)** within defined sessions.
- Implements a **dual tracking system**:
- **Official session levels** (fixed from the session open to close).
- **Real-time max/min tracking** to differentiate between temporary spikes and real price acceptance.
### 2. Market Manipulation Detection
- Identifies **manipulative price action** using the relationship between the open and close:
- If **price closes below open** → assumes **upward manipulation**, followed by **downward distribution**.
- If **price closes above open** → assumes **downward manipulation**, followed by **upward distribution**.
- Normalized using **ATR**, ensuring adaptability across different volatility conditions.
### 3. Probability Engine
- Tracks **historical wick ratios** to assess trend vs. reversal conditions.
- Calculates **conditional probabilities** for price moves.
- Uses a **special threshold system (0.45 and 0.03)** for reversal signals.
- Provides **real-time probability updates** to enhance trade decision-making.
### 4. Market Condition Classification
- Classifies market conditions using a **wick-to-body ratio**:
```pine
wick_to_body_ratio = open > close ? upper_wick / (high - low) : lower_wick / (high - low)
```
- **Low ratio (<0.25)** → Likely a **trend day**.
- **High ratio (>0.25)** → Likely a **range day**.
---
## Why This Indicator Stands Out
### ✅ Smarter Level Detection
- Uses **ATR-based dynamic levels** instead of static support/resistance.
- Differentiates **manipulation from distribution** for better decision-making.
- Updates probabilities **in real-time**.
### ✅ Memory-Efficient Design
- Implements **circular buffers** to maintain efficiency:
```pine
var float manipUp = array.new_float(lookbackPeriod, 0.0)
var float manipDown = array.new_float(lookbackPeriod, 0.0)
```
- Ensures **constant memory usage**, even over extended trading sessions.
### ✅ Advanced Probability Calculation
- Utilizes **conditional probabilities** instead of simple averages.
- Incorporates **market context** through wick analysis.
- Provides **actionable signals** via a probability table.
---
## Trading Strategy Guide
### **Best Entry Setups**
✅ Wait for **price to approach manipulation levels**.
✅ Confirm using the **probability table**.
✅ Check the **wick ratio for context**.
✅ Enter when **conditional probability aligns**.
### **Smart Exit Management**
✅ Use **distribution levels** as **profit targets**.
✅ Scale out **when probabilities shift**.
✅ Monitor **wick percentiles** for confirmation.
### **Risk Management**
✅ Size positions based on **probability readings**.
✅ Place stops at **manipulation levels**.
✅ Adjust position size based on **trend vs. range classification**.
---
## Configuration Tips
### **Session Settings**
```pine
sessionTime = input.session("0830-1500", "Session Hours")
weekDays = input.string("23456", "Active Days")
```
- Match these to your **primary trading session**.
- Adjust for different **market opens** if needed.
### **Analysis Parameters**
```pine
lookbackPeriod = input.int(50, "Lookback Period")
low_threshold = input.float(0.25, "Trend/Range Threshold")
```
- **50 periods** is a good starting point but can be optimized per instrument.
- The **0.25 threshold** is ideal for most markets but may need adjustments.
---
## Market Structure Breakdown
### **Trend/Continuation Days**
- **Characteristics:**
✅ Small **opposing wicks** (minimal counter-pressure).
✅ Clean, **directional price movement**.
- **Bullish Trend Day Example:**
✅ Small **lower wicks** (minimal downward pressure).
✅ Strong **closes near the highs** → **Buyers in control**.
- **Bearish Trend Day Example:**
✅ Small **upper wicks** (minimal upward pressure).
✅ Strong **closes near the lows** → **Sellers in control**.
### **Reversal Days**
- **Characteristics:**
✅ **Large opposing wicks** → Failed momentum in the initial direction.
- **Bullish Reversal Example:**
✅ **Large upper wick early**.
✅ **Strong close from the lows** → **Sellers failed to maintain control**.
- **Bearish Reversal Example:**
✅ **Large lower wick early**.
✅ **Weak close from the highs** → **Buyers failed to maintain control**.
---
## Summary
This indicator systematically quantifies market structure by measuring **manipulation, distribution, and probability-driven trade setups**. Unlike traditional indicators, it adapts dynamically using **ATR, historical probabilities, and real-time tracking** to offer a structured, data-driven approach to trading.
🚀 **Use this tool to enhance your decision-making and gain an objective edge in the market!**